快速开始

小程序新容器仅在 10.2.3 基线版本中提供,且仅支持 mPaaS 原生 AAR 的接入方式。更多信息,请参考 原生 AAR 接入方式简介

前置条件

将小程序新容器接入 Android 之前,请确保您已经开通 mPaaS,并使用原生 AAR 的接入方式完成 mPaaS 接入。

接入步骤

小程序新容器接入步骤概述如下:

  1. 选择基线

    1. 添加 10.2.3 基线

    2. 添加小程序组件

  2. 初始化配置

    1. 初始化 mPaaS

    2. 小程序验签配置

    3. 申请 UC 内核

  3. 发布小程序

    1. 进入小程序后台

    2. 配置虚拟域名

    3. 创建小程序

    4. 发布小程序

  4. 启动小程序

下文将对各步骤操作进行详细说明。

选择基线

  1. 添加 10.2.3 基线。

  2. 添加小程序组件。

初始化配置

初始化 mPaaS

通过 mPaaS 框架初始化(推荐使用该方式)

  1. Application中添加初始化代码。

    public class MyApplication extends Application {
        
        @Override
        public void onCreate() {
            super.onCreate();
            // mPaaS 初始化
            MP.init(this);    
        }
    }

    详情请参考:初始化 mPaaS

  2. AndroidManifest.xml中添加 meta 配置。

    <meta-data
        android:name="mpaas.init.param"
        android:value="com.xxx.xxx.MriverInitImpl" />
  3. 添加 com.xxx.xxx.MriverInitImpl,实现 MPInitParamManifest。

    public class MriverInitImpl implements com.mpaas.MPInitParamManifest {
        @Override
        public MPInitParam initParam() {
            MriverInitParam mriverInitParam = MriverInitParam.getDefault();
            mriverInitParam.setMriverInitCallback(new MriverInitCallback() {
                @Override
                public void onInit() {
                    if (com.alibaba.ariver.kernel.common.utils.ProcessUtils.isMainProcess()) {
                        // 小程序相关配置,比如自定义jsapi,titlebar等
    
                    }
                }
    
                @Override
                public void onError(Exception e) {
    
                }
            });
            return MPInitParam.obtain().addComponentInitParam(mriverInitParam);
        }
    }

通过 MPInit 初始化 mPaaS

初始化 mPaaS,在 Application中添加以下代码。

public class MyApplication extends Application implements MPInitParam.MPCallback {
    @Override
    public void onCreate() {
        super.onCreate();
        // mPaaS 初始化
        MriverInitParam mriverInitParam = MriverInitParam.getDefault();
        mriverInitParam.setMriverInitCallback(new MriverInitCallback() {
            @Override
            public void onInit() {
                if (com.alibaba.ariver.kernel.common.utils.ProcessUtils.isMainProcess()) {
                    // 小程序相关配置,比如自定义jsapi,titlebar等

                }
            }

            @Override
            public void onError(Exception e) {

            }
        });
        MP.init(this, MPInitParam.obtain().setCallback(this).addComponentInitParam(mriverInitParam));
    }
    
    @Override
    public void onInit() {
        // init success
    }
}

小程序验签配置

小程序容器提供包签名验证功能,默认 debug 包关闭,release 包开启,可以通过 API 控制。

// 关闭签名
MriverResource.disableVerify();

// 开启签名,其中xx为后台配置的私钥对应的公钥
MriverResource.enableVerify(MriverResource.VERIFY_TYPE_YES,"xx");
说明

在上线前,建议开启验签。有关小程序包验签配置的具体操作可参考 配置小程序包

配置小程序包请求时间间隔

mPaaS 支持配置小程序包的请求时间间隔,可以通过 API 控制。

Mriver.setConfig("h5_nbmngconfig", "{\"config\":{\"al\":\"3\",\"pr\":{\"4\":\"86400\","
    + "\"common\":\"864000\"},\"ur\":\"1800\",\"fpr\":{\"common\":\"3888000\"}},"
    + "\"switch\":\"yes\"}");

其中 \"ur\":\"1800\"为设置全局更新间隔的值,1800为默认值,代表间隔时长,单位为秒,您可修改此值来设置您的全局小程序包请求间隔,范围为 0 ~ 86400 秒(即 0 ~ 24 小时,0 代表无请求间隔限制)。

重要

其他参数请勿随意修改。

申请 UC 内核

使用小程序前,需要先申请并配置 UC 内核,没有 UC 内核将无法使用 Android 小程序部分能力,具体操作参考 申请 UC 内核 说明文档。

说明

由于产品策略变更,从 2022.12.01 起不支持公开申请 UC Key。

重要

若 minSdkVersion >= 23,则需要在 AndroidManifest.xmlapplication 节点添加如下配置:

<application
 ...
 android:extractNativeLibs="true">
...
</application>

使用 UC 内核,可以使小程序拥有同层能力,如嵌入 webview、嵌入地图等,并且拥有更好的渲染体验。

发布小程序

启动小程序之前,您需要先通过 mPaaS 控制台发布该小程序,步骤如下。

  1. 进入小程序后台。登录 mPaaS 控制台,进入目标应用后,从左侧导航栏进入 小程序> 小程序发布页面。

  2. 配置虚拟域名。如果是第一次配置虚拟域名,请先在 小程序> 小程序发布> 配置管理中配置虚拟域名。虚拟域名可以为任意域名,建议使用您的企业域名,如 example.com

  3. 创建小程序。进入 mPaaS 控制台,完成以下操作:

    1. 单击左侧导航栏的 小程序> 小程序发布

    2. 在打开的小程序包列表页,单击 新建

    3. 新建小程序 窗口,填写小程序的 ID 和小程序名称,单击 确定。其中,小程序 ID 为任意 16 位数字,例如 2018080616290001。

    4. 在小程序 App 列表下,找到新增的小程序,单击 添加

    5. 在基本信息栏,完成以下配置:

      • 版本:填写小程序包的版本号,例如 1.0.0.0

      • 客户端范围:选择小程序 App 对应的 Android 客户端最低版本和最高版本。在这个范围内的客户端 App 可以启动对应的小程序,否则无法启动。这里最低版本可以填写 0.0.0,最高版本可以不填,代表客户端所有版本都可以启动这个小程序。

        说明

        此处务必填写 Android 的客户端版本,而非小程序版本。

      • 图标:单击 选择文件上传小程序包的图标。第一次创建小程序时必须上传图标。示例图标如下:6

      • 文件:上传小程序包资源文件,文件格式为 .zip。我们准备了一个 mPaaS 示例小程序(点此下载),可以直接上传。

        说明

        在上传前,需将此示例小程序的 .zip文件名以及压缩包内的文件夹名均修改为小程序的 16 位数字 ID。

    6. 在配置信息栏,完成以下配置:

      • 主入口 URL:必填,小程序的首页。主入口 URL 格式为:/index.html#xxx/xxx/xxx/xxx,其中 #后方的 xxx/xxx/xxx/xxx是小程序的 app.json中的 pages中的第一个值。如下图所示,mPaaS 示例小程序的主入口为:/index.html#page/tabBar/component/index7

      • 其他配置保持默认即可。

    7. 勾选 已确认以上信息准确,提交后不再修改

    8. 单击 提交

  4. 发布小程序。进入 mPaaS 控制台,完成以下步骤:

    1. 单击左侧导航栏的 小程序> 小程序发布> 小程序正式包管理

    2. 在打开的小程序包列表页中,选择您要发布的小程序包与版本,单击 创建发布

    3. 在创建发布任务栏,完成以下配置:

      • 发布类型:选择 正式 发布类型。

      • 发布描述:选填。

      单击 确定 完成发布创建。

启动小程序

完成上述步骤之后,在 Android 工程中,通过如下代码,启动示例小程序:

Mriver.startApp("2018080616290001");
说明

上方代码中的 2018080616290001为小程序 ID,此处仅为本文示例,操作中请填写您的小程序 ID。